Flash memory devices have developed into a popular source of non-volatile memory for a wide range of electronic applications. Flash memory devices typically use a one-transistor memory cell that allows for high memory densities, high reliability, and low power consumption. Common uses for flash memory include portable computers, personal digital assistants (PDAs), digital cameras, and cellular telephones. Program code, system data such as a basic input/output system (BIOS), and other firmware can typically be stored in flash memory devices.
Flash memory operations such as erase and program are accomplished using complex algorithms composed of many different steps and requiring control over timing, counter, and analog voltages. For example, a program operation is typically a loop of program pulses and program verifies executed so that the desired value is written and verified with an appropriate voltage margin. The control of the memory portion of a flash memory, referred to as the memory array, is accomplished by controlling one or more actuator signals coupled to the memory array.
A circuit typically referred to as an algorithm controller is designed to manage the execution of the various complex steps of memory operations, including controlling the one or more actuator signals. The algorithm controller must track the steps of the operation even when one operation is suspended in order to service a higher priority operation. The algorithm controller must properly manage the interrupt and then resume the original operation at an appropriate point to allow the suspended operation to be correctly completed.
While the algorithm controller executes algorithms, referred to as “user algorithms,” it is often necessary or desirable to operate the flash memory in a different mode, for example a test mode, wherein operations of the flash memory may be controlled by an external tester. In such a mode, referred to as a test mode, one or more setting may be applied to each of the actuator signals controlling the memory array. However, upon exiting the test mode, the setting provided to any of the one or more actuator signals will not be retained, as the user algorithms completely re-writes the setting of the actuator signals based on the user algorithms executed by the algorithm controller during the subsequent user mode.